<html>
    <head>
        <title>IClock 服务</title>
    </head>
    <body>
        <script>
              /*
                    一、 IClock 服务

                                DateTime.Now返回一个DateTime对象，其中包含服务器的本地日期和时间。

                                DateTime对象不存储时区信息。

                                因此，你无法知道存储在该对象中的绝对日期和时间。你只能做出假设，例如假设它是在UTC+05时区创建的。
                                
                                当你将此值保存到数据库并稍后读取它或将其发送到不同时区的客户端时，事情会变得特别复杂。

                                这个问题的一种解决方案是始终使用DateTime.UtcNow，并假设所有DateTime对象为UTC时间。这样，你可以在需要时将其转换为目标客户端的时区。


                                ★、UTC 与本地时间的区别：

                                        维度                UTC(协调世界时间)                              本地时间

                                        定义         全球同一时间标准，基于原子钟和地球自转              特定地理读取的时间(如 "北京时间： UTC+8 ")

                                        时区依赖       不依赖于地理位置，全球统一                        依赖于地理位置


                                IClock在获取当前时间时提供抽象，因此你可以在应用程序的单点控制日期时间的类型（UTC或本地）。

                                        eg: 获取当前时间：

                                                using Volo.Abp.DependencyInjection;
                                                using Volo.Abp.Timing;

                                                namespace AbpDemo
                                                {
                                                    public class MyService : ITransientDependency
                                                    {
                                                        private readonly IClock _clock;

                                                        public MyService(IClock clock)
                                                        {
                                                            _clock = clock;
                                                        }

                                                        public void Foo()
                                                        {
                                                            // 获取当前时间
                                                            var now = _clock.Now;
                                                        }
                                                    }
                                                }


                                        当你需要获取当前时间时注入IClock服务。
                                        常见的基类（如Application ationService）已经注入它并将其作为基属性提供-因此，你可以直接将其用作Clock。

                                        使用Now属性获取当前时间。

                                        （大多数时候，IClock是你需要在应用程序中了解和使用的唯一服务。）
                */

        </script>
    </body>
</html>